
namespace Needle.Bus.Engine
{

    /// <summary>
    /// This interface defines a sink for perfomance count metrics
    /// </summary>
    public interface IPerformanceCounter : IEngineComponent
    {

        bool IsEnabled { get; set; }

        void Record(int sample);

        void Record(int sample, long timestamp);

        void Record(int sample, long timestamp, long duration);

        void Record(double sample);

        void Record(double sample, long timestamp);

        void Record(double sample, long timestamp, long duration);

    }

}
